package cn.ad.server.persistence;

import cn.ad.server.domain.ad.GuidValueObject;

public interface GuidRepository {
	
//	/**
//	 * 根据传入的GUID参数构建GUID对象缓存使用的KEY
//	 * @param guid 原始的GUID唯一标识
//	 * @return
//	 */
//	public String buildCachekey(String guid);
//	
//	/**
//	 * 根据传入参数构建GUID点击累计次数缓存KEY
//	 * @param guid GUID对象唯一标识
//	 * @return
//	 */
//	public String buildCountClickCacheKey(String guid);

	/**
	 * 生成并存储GUID对象
	 * @param guidVo GUID对象
	 * @param channelId 接入渠道标识，GUID对象在缓存中的失效时间由接入的频道来决定
	 * @return
	 */
	String storeGuid(GuidValueObject guidVo, int channelId);

	/**
	 * 根据GUID字符串获取GUID对象
	 * @param guid
	 * @return
	 */
	GuidValueObject findGuidVo(String guid);
	
	
	/**
	 * 计数GUID被点击的次数
	 * @param guidVO GUID对象
	 * @param channelId 接入渠道标识
	 * @return
	 */
	long countGuidClick(GuidValueObject guidVO, int channelId);

	/**
	 * 计数GUID被曝光次数
	 * @param guidVO GUID对象
	 * @param channelId 接入渠道标识
	 * @return
	 */
	long countGuidImpressions(GuidValueObject guidVO, int channelId);
}
